import java.util.*;

/**
 * 分页逻辑测试类
 * 用于验证分页计算是否正确
 */
public class 分页逻辑测试 {
    
    public static void main(String[] args) {
        // 模拟数据
        List<String> allData = new ArrayList<>();
        for (int i = 1; i <= 25; i++) {
            allData.add("Item" + i);
        }
        
        System.out.println("总数据量: " + allData.size());
        System.out.println("原始数据: " + allData);
        System.out.println();
        
        // 测试分页逻辑
        int pageSize = 10;
        
        // 测试第一页
        testPagination(allData, 1, pageSize);
        
        // 测试第二页
        testPagination(allData, 2, pageSize);
        
        // 测试第三页
        testPagination(allData, 3, pageSize);
        
        // 测试第四页（超出范围）
        testPagination(allData, 4, pageSize);
    }
    
    private static void testPagination(List<String> allData, int pageNo, int pageSize) {
        System.out.println("=== 测试第" + pageNo + "页 ===");
        
        int totalItems = allData.size();
        int start = (pageNo - 1) * pageSize;
        int end = Math.min(start + pageSize, totalItems);
        
        System.out.println("总数据量: " + totalItems);
        System.out.println("页码: " + pageNo);
        System.out.println("每页大小: " + pageSize);
        System.out.println("起始位置: " + start);
        System.out.println("结束位置: " + end);
        
        if (start >= totalItems) {
            System.out.println("页码超出范围");
        } else {
            List<String> pagedData = allData.subList(start, end);
            System.out.println("当前页数据: " + pagedData);
            System.out.println("当前页数据量: " + pagedData.size());
        }
        
        System.out.println();
    }
}
